#include<stdio.h>
#include<signal.h>
#include<stdlib.h>
#include<unistd.h>

int main(int argc, char* argv[])
{
	sigset_t sigset;
	sigset_t ign;
	int i,j;
	//printf("Please input the number of cycles: ");
	//scanf("%d",&i);
	if(argc < 2){
		printf("Usage: %s number(>0)\n", argv[0]);
		exit(1);
	}
	for(j=0;j<atoi(argv[1]);j++)
	{
		printf("How are you?\n");
		//exit(0);
	}
	// 需要添加一些信号处理函数，手动制造信号以便测试
	sigemptyset(&sigset);
	sigemptyset(&ign);
	sigaddset(&sigset,SIGINT);
	if(sigprocmask(SIG_SETMASK,&sigset,0)<0)
	{
		printf("sigprocmask error.\n");
		exit(0);
	}

	alarm(5);	// alarm可以设置标志位造成sleep的延时效果
	// 后面几句的思路没毛病
	sigpending(&ign);
	if(sigismember(&ign,SIGQUIT))
		printf("SIGQUIT pending\n");
	sigdelset(&sigset,SIGINT);
	// 信号集使用sigdelset函数删除了信号之后
	// 应该还需要再调用sigprocmask函数重置一下新的信号集
	// （我猜的）
	if(sigprocmask(SIG_SETMASK,&sigset,0)<0)
	{
		printf("sigprocmask error.\n");
		exit(0);
	}
	return 0;

}
